﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CANO.Data.DAOs;

namespace CANO.WebSite.contacts
{
    public partial class contactPrint : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    //Set Session variables
                    Session["currentModule"] = "Contacts";

                    //Fill Data Contact
                    int currentContact = Convert.ToInt32(Request.QueryString["ContactID"]);
                    if (currentContact == 0)
                    {
                        pnlError.Visible = true;
                        pnlContactData.Visible = false;
                        return;
                    }
                    this.fillDataUser(currentContact);


                }
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message + ex.StackTrace;
                lblError.Visible = true;
                throw;
            }

        }

        private void fillDataUser(int contactID)
        {
            try
            {
                ContactoDAO contact = ContactoDAO.getContact(contactID.ToString());

                if (contact.ContactoID != null)
                    lblContactID.Text = contact.ContactoID.ToString();
                else
                    lblContactID.Visible = false;

               if (contact.FechaOrigen.HasValue)
                    txtFechaOrigen.Value = contact.FechaOrigen.ToString();
                else
                    txtFechaOrigen.Visible = false;

               if (contact.Nombre != null)
                   txtNombre.Value = contact.Nombre;
               else
                   txtNombre.Visible = false;

               if (contact.Apellido != null)
                   txtApellido.Value = contact.Apellido;
               else
                   txtApellido.Visible = false;

                ////Get Telefonos

               var telefonos = ContactoTelefonosDAO.getAllByContactoID(contactID);
               foreach (var item in telefonos)
               {
                   litTelfonos.Text += "<div class='telefonos'>";
                   litTelfonos.Text += "<label for='some21' class='label-print'>" + item.TipoTelefonoDisplay + ": </label>";
                   litTelfonos.Text += "<input type='text' size='50' class='txt' disabled='disabled' value='"+ item.Telefono + "'>";
                   litTelfonos.Text += "</div>";
               }

               if (contact.Email != null)
                   txtEmailPrincipal.Value = contact.Email;
               else
                   txtEmailPrincipal.Visible = false;

               if (!String.IsNullOrEmpty(contact.DireccionPersonal))
                   txtDireccionPersonal.Value = contact.DireccionPersonal;
               else
                   txtDireccionPersonal.Visible = false;

               if (!string.IsNullOrEmpty(contact.Dni))
                   txtDNI.Value = contact.Dni;
               else
                   txtDNI.Visible = false;

               if (!String.IsNullOrEmpty(contact.EmailSecundario))
                   txtEmailSecundario.Value = contact.EmailSecundario;
               else
                   txtEmailSecundario.Visible = false;

               if (contact.FechaNacimiento.HasValue)
                   txtFechaNacimiento.Value = contact.FechaNacimiento.Value.ToShortDateString();
               else
                   txtFechaNacimiento.Visible = false;

               if (!String.IsNullOrEmpty(contact.CuilCuit))
                   txtCUITCUIL.Value = contact.CuilCuit;
               else
                   txtCUITCUIL.Visible = false;

               if (!String.IsNullOrEmpty(contact.DireccionLaboral))
                   txtDireccionLaboral.Value = contact.DireccionLaboral;
               else
                   txtDireccionLaboral.Visible = false;

               if (!String.IsNullOrEmpty(contact.PaginaWeb))
                   txtSitioWeb.Value = contact.PaginaWeb;
               else
                   txtSitioWeb.Visible = false;

                if(!String.IsNullOrEmpty(contact.Dni))
                    txtDNI.Value = contact.Dni;
                else
                    txtDNI.Visible = false;

                var profesionId = (contact.Profesion.HasValue) ? contact.Profesion.Value : 0;
                
                if (profesionId > 0)
                    txtProfesion.Value = (ProfesionDAO.GetById(profesionId) != null) ? ProfesionDAO.GetById(profesionId).ProfesionDesc : "Sin Profesion";
                else
                    txtProfesion.Visible = false;

                if (!String.IsNullOrEmpty(contact.Notas))
                    txtNotas.Value = contact.Notas;
                else
                    txtNotas.Visible = false;

                ////Info Familiar
                if (!String.IsNullOrEmpty(contact.NombreConyuge))
                    txtInfoFamiliar.Value = contact.NombreConyuge;
                else
                    txtInfoFamiliar.Visible = false;
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message + ex.StackTrace;
                lblError.Visible = true;
                throw;
            }
        }
    }
}
